var x = 3,
  obj = { x: 5 };
obj.fn = (function () {
  this.x *= ++x;
  return function (y) {
    this.x *= ++x + y;
    console.log(x);
  };
})();
var fn = obj.fn;
obj.fn(6);
fn(4);
console.log(obj.x, x);

// x -> 3-4-12-13->14->234
// obj -> 0x001 -> {x : 5-95, fn: 0x002} -> function (y) {
//                                           this.x *= ++x + y;
//                                           console.log(x);
//                                       }
// fn -> 0x002
// obj.fn(6) -> 0x002(6) -> 13
// fn(4) -> 0x002(4) -> 234
// obj.x -> 95
// x -> 234
